The figure shows the containment hierarchy for instance types. In other words, what types can contain what types. The hierarchy has three levels.

The top level of the hierarchy consists of two types: `OraField` and `OraParameter`.

The second level of the hierarchy contains: `OraObject`, `OraRef`, `OraCollection`, `OraBLOB`, `OraCLOB`, `OraBFILE`, or any scalar type. Either of the two top level types can contain any of the second level types.

The third level of the hierarchy contains: `OraAttribute` types or element values. An `OraObject` or an `OraRef` can contain one or more `OraAttributes`. An `OraCollection` can contain values for multiple collection elements.